<!DOCTYPE html>
<html lang="en">

    <head>
        <meta charset="UTF-8" />
        <link rel="stylesheet" href="styles/style.css">
        <link rel="stylesheet" href="styles/theme/atom-one-dark.css">
        <title>例子37-JS进阶（二）</title>
    </head>

    <body>
        <pre>
            <code>
                    // 例子37

                    var person = {}

                    // 通过get与set自定义访问与设置name属性的方式
                    Object.defineProperty(person, 'name', {
                        get: function() {
                            // 一直返回TOM
                            return 'Tom'
                        },
                        set: function(value) {
                            // 设置name属性时，返回该字符串，value为新值
                            console.log(value + ' in set');
                        }
                    })

                    // 第一次访问name，调用get
                    console.log(person.name)   // Tom

                    // 尝试修改name值，此时set方法被调用
                    person.name = 'Jerry'   // Jerry in set

                    // 第二次访问name，还是调用get
                    console.log(person.name) // Tom
            </code>
        </pre>
        <script src="scripts/libs/highlight.pack.js"></script>
        <script src="scripts/37.js"></script>
        <script>
            hljs.initHighlightingOnLoad();
        </script>
    </body>

</html>